public class NumSubarrayProductLessThanK {

    public static void main(String[] args) {
        int[] nums = {10,5,2,6};
        System.out.println(new NumSubarrayProductLessThanK().numSubarrayProductLessThanK(nums, 100));
    }

    public int numSubarrayProductLessThanK(int[] nums, int k) {
        if (k == 0 || k == 1) return 0;
        int n = nums.length;
        int sum = 1;
        int ans = 0;
        int l = 0;
        for (int i = 0; i < n; i++) {
            sum *= nums[i];
            while (sum >= k && l <= i) {
                sum /= nums[l++];
            }
            ans += i - l + 1;
        }
        return ans;
    }
}
